package cn.fl.customer.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.cmm.base.framework.utils.DecimalUtils;
import cn.fl.customer.vo.CstBscInfoVO;
import fl.customer.facade.customer.dto.CstBscInfoDTO;

 /**
 * @Description: 客户基础信息表 转换器
 * VO是客户端传递数据到服务端进行转换的数据 
 * VO转换数据变成DTO传递到服务端 
 * VO不能在服务端出现
 */
public class CstBscInfoVOTransform {


	/**
	 * DTO 转  VO
	 * @param po CstBscInfoDTO
	 * @return CstBscInfoVO
	 */
	public static CstBscInfoVO toVO(CstBscInfoDTO dto) {
		CstBscInfoVO  vo = null;
		if (dto != null) { 
			vo = new CstBscInfoVO();
			vo.setId(dto.getId());
			vo.setCstCd(dto.getCstCd());//客户编号
			vo.setCstNm(dto.getCstNm());//客户名称
			vo.setCstTypCd(dto.getCstTypCd());//客户分类（CST0001）
			vo.setCstLvlCd(dto.getCstLvlCd());//客户级别（CST0002）
			vo.setCstStsCd(dto.getCstStsCd());//客户状态（CST0003）
			vo.setIndCd(dto.getIndCd());//所属行业（CST0004）
			vo.setCertTypCd(dto.getCertTypCd());//注册证件类型（CST0005）
			vo.setCertNo(dto.getCertNo());//注册证件号
			vo.setAudStsCd(dto.getAudStsCd());//客户审核状态（CST0006）
			vo.setPInstId(dto.getPInstId());//流程实例ID
			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）
			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
			vo.setCstRem(dto.getCstRem());//客户备注
			vo.setActMgrOrgCdNm(dto.getActMgrOrgCdNm());//组织名称
			vo.setOthIndCd(dto.getOthIndCd());
			vo.setPayTypCdNm(dto.getPayTypCdNm());
			vo.setCstTypCdNm(dto.getCstTypCdNm());//客户分类（CST0001）
			vo.setCertTypCdNm(dto.getCertTypCdNm());//注册证件类型
			vo.setIndCdNm(dto.getIndCdNm());//所属行业
			vo.setDsCd(dto.getDsCd());
			vo.setSysCd(dto.getSysCd());
			vo.setBuOrgCd(dto.getBuOrgCd());
			vo.setOrgCd(dto.getOrgCd());
			
			vo.setPayTypCd(dto.getPayTypCd());
			vo.setFlowNo(dto.getFlowNo());
			vo.setIsValid(dto.getIsValid());
			vo.setUsrId(dto.getUsrId());
			
			vo.setCstNpBscInfoVO(CstNpBscInfoVOTransform.toVO(dto.getCstNpBscInfoDTO()));//自然人客户基础信息
			vo.setCstCorpBscInfoVO(CstCorpBscInfoVOTransform.toVO(dto.getCstCorpBscInfoDTO()));//法人客户基础信息
			vo.setCstExtInfoVO(CstExtInfoVOTransform.toVO(dto.getCstExtInfoDTO()));//客户扩展信息
			vo.setCstUsrRVO(CstUsrRVOTransform.toVO(dto.getCstUsrRDTO()));
			vo.setCstRlAttrVOList(CstRlAttrVOTransform.toVOList(dto.getCstRlAttrDTOList()));
			vo.setCstCorpTeamVOList(CstCorpTeamVOTransform.toVOList(dto.getCstCorpTeamDTOList()));
			vo.setCstTypCdNm(dto.getCstTypCdNm());//客户分类名称（CST0001） 对应前端 客户类型
			vo.setCstStsCdNm(dto.getCstStsCdNm());//客户状态名称（CST0003）
			vo.setCstLvlCdNm(dto.getCstLvlCdNm());//客户级别名称（CST0002）
			vo.setMyPeiOuIDImgUrl(dto.getMyPeiOuIDImgUrl());
			vo.setMySelfIDImgUrl(dto.getMySelfIDImgUrl());
			vo.setRskMarkerCd(dto.getRskMarkerCd());

			vo.setIsFarmer(dto.getIsFarmer());//是否农户
			
			//转换年收入字段
			int yrInc = 0;
			if(null != vo.getCstNpBscInfoVO() && null != vo.getCstNpBscInfoVO().getYrInc()){
				yrInc = DecimalUtils.convertFenToYuan(vo.getCstNpBscInfoVO().getYrInc()).intValue();
			}
			if(null != vo.getCstNpBscInfoVO()){
				vo.getCstNpBscInfoVO().setYrIncStr(String.valueOf(yrInc));
			}
			
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto CstBscInfoVO
	 * @return CstBscInfoDTO
	 */
	public static CstBscInfoDTO toDTO(CstBscInfoVO vo) {
		CstBscInfoDTO dto = null;
		if (vo != null) {
			dto = new CstBscInfoDTO();
			dto.setId(vo.getId());
			dto.setCstCd(vo.getCstCd());//客户编号
			dto.setCstNm(vo.getCstNm());//客户名称
			dto.setCstTypCd(vo.getCstTypCd());//客户分类（CST0001）
			dto.setCstLvlCd(vo.getCstLvlCd());//客户级别（CST0002）
			dto.setCstStsCd(vo.getCstStsCd());//客户状态（CST0003）
			dto.setIndCd(vo.getIndCd());//所属行业（CST0004）
			dto.setCertTypCd(vo.getCertTypCd());//注册证件类型（CST0005）
			dto.setCertNo(vo.getCertNo());//注册证件号
			dto.setAudStsCd(vo.getAudStsCd());//客户审核状态（CST0006）
			dto.setPInstId(vo.getPInstId());//流程实例ID
			dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）
			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			dto.setCstRem(vo.getCstRem());//客户备注
			dto.setActMgrOrgCdNm(vo.getActMgrOrgCdNm());//组织名称
			dto.setOthIndCd(vo.getOthIndCd());
			
			dto.setCstTypCdNm(vo.getCstTypCdNm());//客户分类（CST0001）
			dto.setCertTypCdNm(vo.getCertTypCdNm());//注册证件类型
			dto.setIndCdNm(vo.getIndCdNm());//所属行业
			
			dto.setDsCd(vo.getDsCd());
			dto.setSysCd(vo.getSysCd());
			dto.setBuOrgCd(vo.getBuOrgCd());
			dto.setOrgCd(vo.getOrgCd());
			
			dto.setPayTypCd(vo.getPayTypCd());
			dto.setFlowNo(vo.getFlowNo());
			dto.setIsValid(vo.getIsValid());
			dto.setPayTypCdNm(vo.getPayTypCdNm());
			dto.setCstNpBscInfoDTO(CstNpBscInfoVOTransform.toDTO(vo.getCstNpBscInfoVO()));//自然人客户基础信息
			dto.setCstCorpBscInfoDTO(CstCorpBscInfoVOTransform.toDTO(vo.getCstCorpBscInfoVO()));//法人客户基础信息
			dto.setCstExtInfoDTO(CstExtInfoVOTransform.toDTO(vo.getCstExtInfoVO()));//客户扩展信息
			dto.setCstUsrRDTO(CstUsrRVOTransform.toDTO(vo.getCstUsrRVO()));
			dto.setCstRlAttrDTOList(CstRlAttrVOTransform.toDTOList(vo.getCstRlAttrVOList()));
			dto.setCstCorpTeamDTOList(CstCorpTeamVOTransform.toDTOList(vo.getCstCorpTeamVOList()));
			dto.setCstTypCdNm(vo.getCstTypCdNm());//客户分类名称（CST0001） 对应前端 客户类型
			dto.setCstStsCdNm(vo.getCstStsCdNm());//客户状态名称（CST0003）
			dto.setCstLvlCdNm(vo.getCstLvlCdNm());//客户级别名称（CST0002）
			dto.setMyPeiOuIDImgUrl(vo.getMyPeiOuIDImgUrl());
			dto.setMySelfIDImgUrl(vo.getMySelfIDImgUrl());
			dto.setRskMarkerCd(vo.getRskMarkerCd());

			dto.setIsFarmer(vo.getIsFarmer()); //是否农户
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param list List<CstBscInfo>
	 * @return List<CstBscInfoDTO>
	 */
	public static List<CstBscInfoVO> toVOList(List<CstBscInfoDTO> list) {
		List<CstBscInfoVO>  voList = new ArrayList<CstBscInfoVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (CstBscInfoDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
}
